123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- "use client";
- import { getShareLinkApi } from "@/api/config";
- import { useRouter } from "@/i18n/routing";
- import { useUserInfoStore } from "@/stores/useUserInfoStore";
- import { copyText } from "@/utils/methods";
- import { Toast } from "antd-mobile";
- import clsx from "clsx";
- import { useTranslations } from "next-intl";
- import { usePathname } from "next/navigation";
- import React from "react";
- import styles from "./page.module.scss";
- const Item = ({ type = "shake" }) => {
- return (
- <div
- className={clsx(
- "min-w-fit mb-[.2rem] flex flex-shrink-0 flex-grow flex-row items-center",
- styles.itemWrap
- )}
- >
- <div
- className={clsx(
- styles.item,
- // styles.disabled,
- styles.active,
- "flex flex-col items-center text-[.12rem]"
- )}
- >
- <div className={clsx(styles.itemImg, "mb-[.05rem]")}></div>
- <div>Promoção</div>
- <div>
- <span className="text-[#ffc000]">1</span> Pessoa
- </div>
- <div className={styles.itemMoney}>
- <span>+3000</span>
- </div>
- </div>
- <div
- className={clsx(styles.arrow, "relative top-[-.2rem] flex flex-row justify-center")}
- >
- <img src="/fission/arrow.png" className={clsx("w-[.2rem]")} alt="" />
- </div>
- </div>
- );
- };
- const Page: React.FC = () => {
- const t = useTranslations();
- const router = useRouter();
- const { userInfo } = useUserInfoStore();
- const pathname = usePathname();
- const [BASE_URL, setBaseUrl] = React.useState("");
- const url = React.useMemo(() => {
- const shareUrl = `${BASE_URL}?share_id=${userInfo ? userInfo.referrer_code : "xxxxxx"}`;
- return encodeURIComponent(`${shareUrl}`);
- }, [BASE_URL, userInfo]);
- const SHARE_SOURCE = React.useMemo(() => {
- return [
- {
- icon: "/summary/Facebook.png",
- label: "Facebook",
- shareUrl: `https://www.facebook.com/sharer/sharer.php?u=${url}`,
- },
- {
- icon: "/summary/WhatsApp.png",
- label: "WhatsApp",
- shareUrl: `https://api.whatsapp.com/send?text=${url}`,
- },
- {
- icon: "/summary/Telegram.png",
- label: "Telegram",
- shareUrl: `https://t.me/share/url?url=${url}`,
- },
- {
- icon: "/summary/Twitter.png",
- label: "Twitter",
- shareUrl: `https://twitter.com/intent/tweet?text=${url}`,
- },
- {
- icon: "/summary/Email.png",
- label: "Email",
- shareUrl: `mailto: ?&subject=&cc=&bcc=&body=${url}`,
- },
- ];
- }, [url]);
- React.useEffect(() => {
- init();
- }, []);
- const init = async () => {
- const res = await getShareLinkApi();
- if (res.code === 200) {
- const url =
- res.data.find((item) => item.type === 2)?.url ??
- window.location.href.replace(pathname, "");
- setBaseUrl(url);
- }
- };
- return (
- <div className={styles.fissionPage}>
- <div className={styles.container}>
- <img className={styles.img} src="/fission/title.png" alt="" />
- <div className={styles.content}>
- <div
- className={clsx(
- "mb-[.09rem] flex flex-row items-center justify-between p-[.1rem]",
- styles.box
- )}
- >
- <div
- className={clsx(
- "mr-[.1rem] overflow-hidden text-ellipsis whitespace-nowrap"
- )}
- >
- Meu link:{decodeURIComponent(url)}
- </div>
- <span
- className={styles.copy}
- onClick={() => {
- copyText(decodeURIComponent(url));
- Toast.show({
- icon: "success",
- content: t("SummaryPage.copySuc"),
- maskClickable: false,
- });
- }}
- ></span>
- </div>
- <div className={clsx(styles.box, "mb-[.1rem] p-[.1rem]")}>
- <div className={clsx("mb-[.1rem] text-[.14rem] font-bold")}>
- Compartilhamento Rápido
- </div>
- <div className={clsx("flex flex-row items-center")}>
- {SHARE_SOURCE.map((item) => {
- return (
- <a
- href={item.shareUrl}
- target={"_blank"}
- className={clsx(
- "mr-[.1rem] w-[.4rem] overflow-hidden rounded-[50%]"
- )}
- key={item.label}
- >
- <img className={styles.icon} src={item.icon} alt="" />
- </a>
- );
- })}
- </div>
- </div>
- <div
- className={clsx(
- styles.box,
- "mb-[.2rem] flex flex-row items-center justify-between p-[.1rem]"
- )}
- >
- <div>
- <div>Meus subordinados diretos</div>
- <div>
- <span className="text-[#ffae00]">0Pessoa </span>
- (Válido <span className="text-[#ffae00]">0Pessoa</span>)
- </div>
- </div>
- <div
- className={clsx("text-[#2dd0df]")}
- onClick={() => router.push("/fission/detail")}
- >
- Detalhes>
- </div>
- </div>
- <div className={clsx("mb-[.1rem] flex flex-row flex-wrap justify-start")}>
- <Item></Item>
- <Item></Item>
- <Item type={"shake"}></Item>
- <Item></Item>
- <Item></Item>
- <Item></Item>
- <Item></Item>
- <Item></Item>
- <Item></Item>
- </div>
- <div className={clsx(styles.box, "p-[.1rem]")}>
- <div>
- 0 que é o número de promoção efetiva?(Preenchendo as seguintes
- condições)
- </div>
- <div className={styles.hr}></div>
- <div className="flex flex-row items-center justify-between">
- <div>Primeiro depósito do subordinado</div>
- <div className="text-[#2dd0df]">≥0,00</div>
- </div>
- <div className={styles.hr}></div>
- <div className="flex flex-row items-center justify-between">
- <div>Depositos acumulados do subordinado</div>
- <div className="text-[#2dd0df]">≥0,00</div>
- </div>
- <div className={styles.hr}></div>
- <div className="flex flex-row items-center justify-between">
- <div>quantidade de apostas acumuladas pelo subordinado</div>
- <div className="text-[#2dd0df]">≥0,00</div>
- </div>
- <div className={styles.hr}></div>
- <div className="flex flex-row items-center justify-between">
- <div>Dias acumulados de depósito do subordinado</div>
- <div className="text-[#2dd0df]">≥0,00</div>
- </div>
- <div className={styles.hr}></div>
- <div className="flex flex-row items-center justify-between">
- <div>Número acumulado de recargas dos subordinados</div>
- <div className="text-[#2dd0df]">≥0,00</div>
- </div>
- </div>
- <div
- className={clsx(
- styles.box,
- "relative mt-[.4rem] p-[.15rem] pl-[.3rem] pt-[.4rem]"
- )}
- >
- <div className={styles.ttitle}>Detalhes do Evento</div>
- <ul className="list-decimal">
- <li>
- Convide amigos para receber um bônus. Ao completar diferentes
- números de convites, você pode ganhar o bônus correspondente, com um
- valor máximo de 88.888. Quanto mais amigos você convidar, maiores
- serão as recompensas; As apostas feitas pelos subordinados são
- consideradas válidas apenas nas seguintes plataformas;Todas as
- Plataformas;
- </li>
- <li>
- Esta atividade é um presente adicional da plataforma.Você também
- pode desfrutar de outras recompensas e comissões de agentes, o que
- significa que você pode aproveitar a a chance de ganhar bônus varias
- vezes;
- </li>
- <li>
- As recompensas só podem ser reivindicadas manualmente no iOS,
- Android e H5, e serão distribuídas automaticamente se expiradas;
- </li>
- <li>
- O bônus (excluindo o principal) concedido por esta atividade requer
- 1 vez o valor em apostas valida para serem retiradas;
- </li>
- <li>
- Esta atividade está limitada ao titular da conta para operações
- humanas normais. Alugar, usar cheats, robôs, jogar com contas
- diferentes,jogar com varias pessoas, arbitragem, interfaces,
- acordos, explorar vulnerabilidades, controle de grupo ou outros
- meios técnicos são proibidos.Caso contrário, as recompensas podem
- ser canceladas ou deduzidas, congeladas ou até mesmo colocadas em
- uma lista;
- </li>
- <li>
- Para evitar mal-entendidos de interpretação de texto, a plataforma
- reserva o direito de interpretação e descisão final para à
- plataforma.
- </li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- );
- };
- export default Page;
|